package com.ruoyi.web.sso.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 用户信息表
 * </p>
 *
 * @author cdd
 * @since 2021-10-20
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Staff implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private String id;

    /** 园区id */
    @Excel(name = "园区id")
    private String areaId;

    /** $column.columnComment */
    private String logName;

    private String remark;

    /** 头像 */
    @Excel(name = "头像")
    private String headImgUrl;

    /** 手机号唯一 */
    @Excel(name = "手机号唯一")
    private String mobile;

    /** 密码 */
    @Excel(name = "密码")
    private String password;

    /** 哈希盐 */
    @Excel(name = "哈希盐")
    private String raw;

    /** 用户名 */
    @Excel(name = "用户名")
    private String username;

    /** 真实姓名 */
    @Excel(name = "真实姓名")
    private String realName;

    /** 性别 0:女，1：男 */
    @Excel(name = "性别 0:女，1：男")
    private Integer gender;

    /** 修改时间 */
    @Excel(name = "修改时间")
    private Long lastLogin;

    /** 是否离职 */
    @Excel(name = "是否离职")
    private Long status;

    /** 是否删除 0：否，1是 */
    @Excel(name = "是否删除 0：否，1是")
    private Integer deleted;

    @ApiModelProperty(value = "老师类型（1.主班，2.辅班，3.保育）")
    private Integer types;

    @ApiModelProperty(value = "老师类型（1.主班，2.辅班，3.保育）")
    private Integer type;

    /** 角色集合 */
    @Excel(name = "角色集合")
    private String positionName;

    /** 身份证 */
    private String idCard;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date birthTime;

    /** 年龄 */
    private Integer age;

    /** 家庭住址 */
    private String homeAddress;

    /** 现住地址 */
    private String currentAddress;

    private String province;

    private String city;

    private String district;

    private String detailedAddress;

    /** 紧急联系人 */
    private String emergencyName;

    /** 紧急联系人电话 */
    private String emergencyMobile;

    /** 工作形象照 */
    private String workFormPhoto;

    /** 附件 */
    private String file;

    /** 联系方式 */
    private String  contactInformation;

    /** 民族 */
    private String nationality;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;

    @TableField(exist = false)
    List<StaffChild> childList;

    /** 学历证书 */
    @ApiModelProperty(value="学历证书")
    private String certificate;

    /** 从业证书 */
    @ApiModelProperty(value="从业证书")
    private String certificateEmployment;

    @TableField(exist = false)
    private   String[] roles;

    /** 体检报告开始时间 */
    @ApiModelProperty(value="体检报告开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date physicalReportStart;

    /** 体检报告结束时间 */
    @ApiModelProperty(value="体检报告结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date physicalReportEnd;

    /** 体检报告 */
    @ApiModelProperty(value="体检报告")
    private String physicalReportFile;

    /** 无犯罪证明开始时间 */
    @ApiModelProperty(value="无犯罪证明开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date certificateClearanceStart;

    /** 无犯罪证明结束时间 */
    @ApiModelProperty(value="无犯罪证明结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date certificateClearanceEnd;

    /** 无犯罪证明 */
    @ApiModelProperty(value="无犯罪证明")
    private String certificateClearanceFile;

    @ApiModelProperty(value="简介")
    private String introduction;



}
